package com.dog.basics.service.mtkj;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dog.basics.bean.dto.admin.mtkj.UserAddrFromDto;
import com.dog.basics.bean.dto.api.mtkj.ApiUserAddrAddDto;
import com.dog.basics.bean.dto.api.mtkj.ApiUserAddrEditDto;
import com.dog.basics.bean.dto.api.mtkj.ApiUserAddrPageDto;
import com.dog.basics.bean.model.mtkj.MtUserAddr;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.basics.bean.vo.admin.mtkj.UserAddrFromVo;
import com.dog.basics.bean.vo.api.mtkj.ApiUserAddrVo;
import com.dog.basics.common.util.PageParam;

/**
 * <p>
 * 用户配送地址 服务类
 * </p>
 *
 * @author wph
 * @since 2020-11-09
 */
public interface IMtUserAddrService extends IService<MtUserAddr> {

    /**
     * 获取用户地址
     * @param
     * @return
     * @author hangdy
     */
    IPage<ApiUserAddrVo> findByUserId(PageParam page, ApiUserAddrPageDto dto);

    /**
     * 设置默认地址
     * @return
     * @author hangdy
     */
    Boolean setDefault(Long id);

    /**
     * 新增
     * @param userAddrAddDto
     * @return
     * @author hangdy
     */
    Boolean saveUserAddr(ApiUserAddrAddDto userAddrAddDto);

    /**
     * 修改用户地址
     * @param userAddrEditDto
     * @return
     * @author hangdy
     */
    Boolean editUserAddr(ApiUserAddrEditDto userAddrEditDto);

    /**
     * 删除用户地址
     * @param id
     * @return
     * @author hangdy
     */
    Boolean deleteUserAddr(Long id);

    /**
     * admin服务
     *  查询所有地址
     * @param: page
     * @param: userId
     * @returns
     * @author hangdy
     * @date: 2020/11/14 12:18
     */
    IPage<UserAddrFromVo> findUserAddr(PageParam page, UserAddrFromDto fromDto);

    /**
     * admin服务
     *  删除用户地址
     * @param: id
     * @returns 
     * @author hangdy
     * @date: 2020/11/14 12:19
     */ 
    Boolean adminDeleteUserAddr(Long id);


}
